// pages/viewPhoto/viewPhoto.js
import { toast, request } from '../../utils/wxCommon'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    page: 1,
    size: 10,
    list: [],
    columns: ['保存图片到本地','删除当前图片'],
    Show: false,
    nomore: false
  },
  //长按图片显示弹框
  showPrick(e){
    console.log(e)
    this.data.index = e.currentTarget.dataset.val;
    this.setData({
      Show: true
    })
  },
  //确认按钮
  onConfirm(e){
    console.log(e);
    const { index} = e.detail
    if(index == 0 ){//保存图片到本地
      this.downLoad();
    }else{//删除当前图片
      this.removeImg();
      this.setData({
        Show:false
      })
    }
   
  },
  //下载图片并保存到本地
  downLoad(){
    const list = this.data.list;
    const index = this.data.index;
    wx.cloud.downloadFile({
      fileID: list[index].fileId,
      success: res => {
        // get temp file path
        console.log(res.tempFilePath)
        console.log('下载图片成功',res.tempFilePath)
        wx.saveImageToPhotosAlbum({
          filePath: res.tempFilePath,
          success:(val)=> {
            this.setData({
              Show:false
            })
            toast('图片保存成功');
            console.log('图片保存成功',val)
          }
        })
      },
      fail: err => {
        // handle error
        console.log('下载图片失败',err)
      }
    })
  },
  //删除当前图片及云存储中的图片及数据库中的数据
  removeImg(){
    const list = this.data.list;
    const index = this.data.index;
    //删除页面中的数据
    const params = {
      openid: wx.getStorageSync('usreInfo').openid,
      fileId: list[index].fileId,
      type: 4
    }
    request('user',params).then(res=>{
      console.log('删除图片成功',res)
      if(res.result.status === 'S'){
        wx.cloud.deleteFile({
          fileList: [list[index].fileId]
        }).then(val => {
          console.log(val)
          if(val.fileList[0].status === 0){
            list.splice(index,1);
            this.setData({
              list
            })
            list.length<1 && wx.navigateBack({
              delta:1
            })
            // handle success
           toast(res.result.message);
          }else{
            toast(val.fileList[0].errMsg);
          }
            
        }).catch(error => {
          console.log('删除云存储失败',error)
          // toast(val[0].errMsg);
        })
      }
    }).catch(msg=>{
      console.log('删除图片失败',msg);
    })
  },
  //取消按钮
  onCancel(){
    this.setData({
      Show: false
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.requestList()
  },
  //点击图片进行预览
  previewPhoto(e){
    const index = e.currentTarget.dataset.val
    const list = []
    this.data.list.forEach(item=>{
      let obj = {
        url: item.fileId,
      }
      list.push(obj)
    })
    wx.previewMedia({
      sources: list,
      current: index,
      success:res=>{
        console.log('预览成功',res)
      },fail: msg=>{
        console.log('预览失败',msg)
      }
    })
  },
  //请求数据列表
  requestList(flg=false){
    const params = {
      openid : wx.getStorageSync('usreInfo').openid || '',
      type: 3,
      page: flg? this.data.page : 1,
      size: this.data.size
    }
    request('user', params).then(res=>{
      console.log('请求云存储中的图片成功',res)
      if(res.result.status === 'S'){
        // if(flg){
        //   this.setData({
        //     list: this.data.list.concat(res.result.data),
        //     nomore: res.result.data.length < 10? true : false
        //   })
        //   return 
        // }
        this.setData({
          list: !flg? res.result.data : this.data.list.concat(res.result.data),
          nomore: res.result.data.length < 10? true : false
        })
      }
    }).catch(msg=>{
      console.log('请求云存储中的图片失败',msg)
    })
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    console.log('上拉加载触发了');
    if(this.data.nomore) return;
    this.data.page++;
    this.requestList(true)
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})